﻿/*-------------------------------------
//
//Copyright (C) 2007 开发二组 版权所有。
//
//文件名：StaffService.cs
//
//文件功能描述：定义对员工进行操作的外观
// 
//创建标识：2007.11.16 李鹏
//创建描述：
//
//修改标识: 2007.11.19 曾健铭
//修改描述: 修改部分注释.增加GetStaffNameByID方法.
// 
//修改标识：2007.11.18 殷悦
//修改描述：根据业务逻辑层修改部分方法
//
//修改标识：2007.11.28 曹骞
//修改描述：增加获取员工分页列表的服务
//
//------------------------------------*/
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using JXMSTC.SmartBusiness.BFL.BLLFactory;
using JXMSTC.SmartBusiness.BFL.IBLL;


/// <summary>
/// 对员工进行操作的外观
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class StaffService : System.Web.Services.WebService
{

    public StaffService()
    {

        //如果使用设计的组件，请取消注释以下行 
        //InitializeComponent(); 
    }

    private readonly IStaff bll = BLLAccess.CreateStaff();

    /// <summary>
    /// 输入用户账号和密码实现后台用户登录
    /// </summary>
    /// <param name="strAccount">用户账号</param>
    /// <param name="bytPassword">密码</param>
    /// <returns>登录成功，返回 True；失败返回 False</returns>
    [WebMethod(Description =" 员工登录身份验证")]
    public bool Login(string strAccount, byte[] bytPassword)
    {
        return bll.Login(strAccount, bytPassword);
    }

    /// <summary>
    /// 根据用户帐号,后台用户修改自己的密码
    /// </summary>
    /// <param name="bytOldPassword">旧密码</param>
    /// <param name="bytPassword">新密码</param>
    /// <param name="strAccout">用户账号</param>
    /// <returns>密码修改成功，返回 True；失败则返回 False</returns>
    [WebMethod(Description ="后台用户修改密码 ")]
    public bool ChangePWD(byte[] bytOldPassword, byte[] bytPassword, string strAccount)
    {
        return bll.ChangePWD(bytOldPassword, bytPassword, strAccount);
    }

    /// <summary>
    /// 添加一个新的后台用户；用户角色通过角色编号来设置
    /// </summary>
    /// <param name="strAccount">用户账号</param>
    /// <param name="strFirstName">用户的 FirstName</param>
    /// <param name="strLastName">用户的 LastName</param>
    /// <param name="bytPassword">密码</param>
    /// <param name="iRoleID">用户角色；0:表示超级管理员;1表示仓库管理员,2表示业务员.</param>
    /// <param name="iStatus">用户状态；0表示停用，1表示正常</param>
    /// <returns>添加成功，返回 True；失败则返回 False</returns>
    [WebMethod(Description ="添加一个员工 ")]
    public bool Add(string strAccount, string strFirstName, string strLastName, byte[] bytPassword, int iRoleID, int iStatus)
    {
        return bll.Add(strAccount, strFirstName, strLastName, bytPassword, iRoleID, iStatus);
    }

    /// <summary>
    /// 查询用户列表
    /// </summary>
    /// <param name="strAccout">用户账号</param>
    /// <returns>根据用户账号，返回一个用户信息</returns>
    [WebMethod(Description ="由员工帐号获取一个员工实体集")]
    public JXMSTC.SmartBusiness.Common.Model.Staff Select(string strAccout)
    {
        return bll.Select(strAccout);
    }

    /// <summary>
    /// 修改用户的信息;用户角色通过角色编号来设置
    /// </summary>
    /// <param name="strAccout">用户账号</param>
    /// <param name="strFirstName">用户的 FirstName</param>
    /// <param name="strLastName">用户的 LastName</param>
    /// <param name="bytPassword">密码</param>
    /// <param name="iRoleID">用户角色</param>
    /// <param name="iStatus">用户状态；0表示停用，1表示正常</param>
    /// <returns>修改成功则返回 True，失败则返回 False</returns>
    [WebMethod(Description ="修改用户信息")]
    public bool Update(int iStaffID,string strAccout, string strFirstName, string strLastName, byte[] bytPassword, int iRoleID, int iStatus)
    {
        return bll.Update(iStaffID,strAccout, strFirstName, strLastName, bytPassword, iRoleID, iStatus);
    }

    /// <summary>
    /// 获取所有用户的一个列表
    /// </summary>
    /// <remarks>
    /// 包括以下列：员工编号、账号、姓名、角色、状态
    /// </remarks>
    /// <returns>用户列表</returns>
    [WebMethod(Description ="无条件获取一个员工列表 ")]
    public System.Data.DataSet GetList()
    {
        try
        {
            return bll.GetList();
        }
        catch (Exception e)
        {
            return new System.Data.DataSet(e.Message);
        }
    }
    [WebMethod(Description ="模糊查询获取一个有分页的员工列表 ")]
    public System.Data.DataSet GetListforPaging(int iPageSize, int iPageIndex, string strAccount)
    {
        try
        {
            return bll.GetList(iPageSize, iPageIndex, strAccount);
        }
        catch (Exception e)
        {
            return new System.Data.DataSet(e.Message);
        }
    }
    //修改描述:增加一个方法.
    /// <summary>
    /// 由员工ID获取员工姓名.
    /// </summary>
    /// <param name="iStaffID">员工ID</param>
    /// <returns>员工姓名</returns>
    [WebMethod(Description ="由员工ID获取员工姓名 ")]
    public string GetStaffNameByID(int iStaffID)
    {
        return bll.GetStaffNameByID(iStaffID);
    }
    /// <summary>
    /// 由员工帐号进行模糊查询.
    /// </summary>
    /// <param name="strAccount">员工帐号</param>
    /// <returns>返回模糊查询结果</returns>
    [WebMethod(Description ="模糊查询获取员工列表 ")]
    public System.Data.DataSet GetListByAccount(string  strAccount)
    {
        return bll.GetList(strAccount);
    }
}

